<?php

namespace zhuli\core;

class Loader
{

	protected $psr4 = [];
	/**
	 * load 自动加载函数
	 * @param  string $class 类名
	 * @return void
	 */
	public function load($class)
	{
		foreach ($this->psr4 as $prefix => $paths) {
			if (substr($class, 0, strlen($prefix)) == $prefix) {
				foreach ($paths as $path) {
					$file = $path . '/' . substr($class, strlen($prefix)) . '.php';
					if (file_exists($file)) {
						require $file;
						return;
					}
				}
			}
		}

	}

	/**
	 * addPsr4 添加映射关系
	 * @param string $prefix 命名空间前缀
	 * @param string $path   文件基目录
	 */
	public function addPsr4($prefix, $path)
	{
		$this->psr4[$prefix][] = $path;
	}
}